﻿using System;
using System.Collections.Generic;
using System.Text;
using ComposicionPedidos;
using PersistenciaPedidos;
using System.IO;

namespace AdministracionPedidos
{
    class IngresadorPedido
    {
        public IngresadorPedido()
        {

        }

        public List<Insumo> ingresarPedido(Pedido pedido, Dictionary<Insumo, int> listaInsumos, ControladorStock controlador, ColaAsignacion colaAsignacion, ISeleccionador controller)
        {
            List<Insumo> insumosCriticos = new List<Insumo>();

            insumosCriticos = controlador.descontarStock(listaInsumos);

            if (pedido.Tipo.Equals(TipoPedido.Pizza))
            {
                colaAsignacion.asiganarPedidoSoloPizzas(pedido);
            }
            else if (pedido.Tipo.Equals(TipoPedido.Empanada))
            {
                colaAsignacion.asiganarPedidoSoloEmpanadas(pedido);
            }
            else
            {
                int idHorno = controller.dameIdHorno(colaAsignacion);

                colaAsignacion.asiganarPedido(pedido, idHorno);
            }

            if(!Directory.Exists(Environment.CurrentDirectory + "/Pedidos"))
            {
                Directory.CreateDirectory(Environment.CurrentDirectory + "/Pedidos");
            }

            ParserXML parser = new ParserXML(Environment.CurrentDirectory + "/Pedidos/" + pedido.Numero + ".xml");
            parser.write(pedido);

            return insumosCriticos;
        }
    }
}
